package com.tengju.data.infrastructure.persistence.mybatis.mapper.clickhouse.activity;

import com.tengju.data.domain.model.activity.ActivityAnalysisQuery;
import com.tengju.data.domain.model.activity.ActivityViewReachQuery;
import org.apache.ibatis.annotations.Param;

import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * @author chenhang
 * @Date 2021/10/14
 */
public interface ActivityTargetAnalysisMapper {

    Map<String,Object> getActivityGmvCntTotal(@Param("genSecIdCodes") List<Long> genSecIdCodes, @Param("activityId") Long activityId, @Param("kanbanType") int kanbanType);

    List<Map<String, Object>> dailyOverview(@Param("query") ActivityAnalysisQuery activityAnalysisQuery);

    Date getDataUpdateTime(@Param("query") ActivityAnalysisQuery activityAnalysisQuery);

    List<Map<String, Object>> userTargetReach(@Param("query") ActivityViewReachQuery activityViewReachQuery);

    List<Map<String, Object>> chiefTargetReach(@Param("query") ActivityViewReachQuery activityViewReachQuery);

    int chiefTargetReachCount(@Param("query") ActivityViewReachQuery activityViewReachQuery);

    int userTargetReachTotal(@Param("query") ActivityViewReachQuery activityViewReachQuery);

    List<Map<String, Object>> getChartData(@Param("query") ActivityViewReachQuery activityViewReachQuery);

    List<Map<String, Object>> dailyChart(@Param("query") ActivityAnalysisQuery activityAnalysisQuery);

    List<Map<String, Object>> getDimInfo(@Param("query") ActivityViewReachQuery activityAnalysisQuery);

    List<Map<String, Object>> saleTarget(@Param("query") ActivityAnalysisQuery activityAnalysisQuery);

    List<Map<String, Object>> saleOverview(@Param("query") ActivityAnalysisQuery activityAnalysisQuery);

    List<Map<String, Object>> pullOverview(@Param("query") ActivityViewReachQuery activityAnalysisQuery);

    String getDimName(@Param("query") ActivityViewReachQuery activityAnalysisQuery);
}
